Today, people often utilize computing devices (or systems) for a wide variety of purposes. Users can use their computing devices to, for example, interact with one another, create content, share information, and access information. In some cases, a user of a social networking system (or service) can utilize his or her computing device to create and post media content, such as a video, at the social networking system. Subsequent to being uploaded, the video can be accessed via the social networking system.
When the video is uploaded, conventional approaches to handling videos generally involve encoding the entire video to produce a new version of the video that is more suitable for storage or playback. However, the new version produced using such conventional approaches sometimes suffers a significant reduction in video quality relative to the originally uploaded video. Moreover, the producing of the new video can require a substantial amount of time and computing resources. Furthermore, when delivering the new version of the video to a viewer, conventional approaches typically deliver the new version based on the viewer's download capabilities, which can result in undesirable fluctuations in video quality. As such, conventional approaches to handling videos can be unreliable, inefficient, and lacking in quality. These and other similar concerns of conventional approaches can reduce the overall user experience associated with accessing videos.